package com.cms.recursoshumanos.activity.user.familiar;

import java.lang.ref.WeakReference;

import com.example.frontendrecursoshumanos.R;
import com.cms.recursoshumanos.activity.main.MainRecursosHumanosActivity;
import com.cms.recursoshumanos.cache.UserInfoCache;
import com.cms.recursoshumanos.handler.ImagenesHandler;
import com.cms.recursoshumanos.object.Familiar;
import com.cms.recursoshumanos.utilities.Tool;

import android.os.AsyncTask;
import android.os.Bundle;
import android.graphics.Bitmap;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class DetailFamiliarActivity extends MainRecursosHumanosActivity {

	private Familiar elFamiliar;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_detail_familiar);
		
		Bundle bundle = getIntent().getExtras();
		int id_familiar = Integer.parseInt(bundle.getString("id_familiar"));
		elFamiliar = UserInfoCache.getInstance().getListaFamiliar().getFamiliarById(id_familiar);

		setComponents();
	}

	public String getNomprePersona()
	{
		if (elFamiliar.getPersona().getNombre_Persona_2() == null)
		{
			return elFamiliar.getPersona().getNombre_Persona_1();
		}
		else
		{
			return elFamiliar.getPersona().getNombre_Persona_1()+" "+
					elFamiliar.getPersona().getNombre_Persona_2();
		}
	}
	public String getApellidoPersona()
	{
		if (elFamiliar.getPersona().getApellido_Persona_2() == null)
		{
			return elFamiliar.getPersona().getApellido_Persona_1();
		}
		else
		{
			return elFamiliar.getPersona().getApellido_Persona_1()+" "+
					elFamiliar.getPersona().getApellido_Persona_2();
		}
	}

	private void setComponents()
	{
		LinearLayout layout_info_general = (LinearLayout) findViewById(R.id.llInformacionGeneral);
		RelativeLayout layout_nombre_user_portait = (RelativeLayout) findViewById(R.id.rlFamiliarNombrePortait);
		RelativeLayout layout_user_portait = (RelativeLayout) findViewById(R.id.rlFamiliarPortrait);
		
		TextView nombre_familiar_portait = (TextView) layout_nombre_user_portait.findViewById(R.id.tvPortaitNombreFamiliar);
		TextView apellido_familiar_protait = (TextView) layout_nombre_user_portait.findViewById(R.id.tvPortaitApellidoFamiliar);
		ImageView foto_familiar_portait = (ImageView) layout_user_portait.findViewById(R.id.ivFotoFamiliar);
		
		TextView nombre_persona_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueNombreFamiliar);
		TextView apellido_persona_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueApellidoFamiliar);
		TextView fecha_nac_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueFechaNacFamiliar);
		TextView sexo_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueSexoFamiliar);
		TextView parentesco_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueParentescoFamiliar);
		TextView cedula_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueCiFamiliar);
				
		//*--------------Seteo de Portait------------------------------------
		nombre_familiar_portait.setText(elFamiliar.getPersona().getNombre_Persona_1());
		apellido_familiar_protait.setText(elFamiliar.getPersona().getApellido_Persona_1());
		if (elFamiliar.getPersona().getFoto_Persona() != null)
		{
			foto_familiar_portait.setImageBitmap(elFamiliar.getPersona().getFoto_Persona());
		}
		else
		{
			new DownloadImageTask(DetailFamiliarActivity.this).execute(elFamiliar);
		}
		
		//*--------------Seteo de Detalle------------------------------------
		nombre_persona_second_row.setText(getNomprePersona());
		apellido_persona_second_row.setText(getApellidoPersona());
		fecha_nac_second_row.setText(Tool.getInstance().parseDateToString(elFamiliar.getPersona().getFecha_Nacimiento(), 
										6));
		sexo_second_row.setText(elFamiliar.getPersona().getSexo_Persona());
		parentesco_second_row.setText(elFamiliar.getParentesco().getNombreParentesco());
		cedula_second_row.setText(elFamiliar.getPersona().getCedula_Persona());
	}
	
	
	private static class DownloadImageTask extends AsyncTask<Familiar, Void, Bitmap> 
	{
		WeakReference<DetailFamiliarActivity> context;
		DetailFamiliarActivity activity;
		private Familiar elFamiliar;
	 
		public DownloadImageTask(DetailFamiliarActivity detailFamiliarActivity) 
		{	
			context = new WeakReference<DetailFamiliarActivity>(detailFamiliarActivity);
			this.activity = context.get();
		}
    	
		@Override
		protected Bitmap doInBackground(Familiar... elFamiliar) 
		{
			ImagenesHandler handler = new ImagenesHandler();
			this.elFamiliar = elFamiliar[0];
			return handler.GetImage(this.elFamiliar.getPersona().getUrlFoto());
		}
		
		@Override
		protected void onPostExecute(Bitmap poster) 
		{  
			RelativeLayout layout_familiar_portrait = (RelativeLayout) activity.findViewById(R.id.rlFamiliarPortrait);
			ImageView itemImageView = (ImageView) layout_familiar_portrait.findViewById(R.id.ivFotoFamiliar);
	        
	        if (itemImageView != null)
	        {
        		if(poster != null)
	        	{
        			itemImageView.setImageBitmap(poster);
        			this.elFamiliar.getPersona().setFoto_Persona(poster);
    				UserInfoCache.getInstance().getListaFamiliar().actualizarFamiliar(elFamiliar);
	        	}
	        }
		}
    }
	
	
	
}
